1. Field of the Invention
The invention relates to a method for assuring unique identification of a device having redundant components storing the device identity, and more particularly, to a method for uniquely identifying an storage system enclosure having redundant environmental service cards that provide the unique identity of the enclosure so that the cards may be located in any storage enclosure or swapped between storage enclosures.
2. Description of Related Art
A computer system generally utilizes one or more data storage devices for persistent storage of information. In larger computer systems, storage systems having multiple data storage devices are often used to store correspondingly large amounts of information. A storage system may be equipped with one or more storage enclosures. These storage systems often integrate a number of data storage devices (e.g., tape drives, compact disks and disk drives or more simply xe2x80x9cdisksxe2x80x9d) into an enclosure (storage module) to store data accessible to a computer system.
As storage capacity requirements increase and multiple storage devices are utilized, reliability concerns relating to the storage system grow proportionally. A number of solutions have been implemented for providing reliability within a storage system. These solutions typically incorporate the use of redundant storage components. In general, redundant components are used such that when a first component (primary) fails, a second component (spare or redundant) immediately takes over the operations of the failed component. Such redundancy helps avoid loss of data or loss of access to data due to failure of a particular component in a storage system.
One such redundancy technique in storage systems is the use of redundant disk drives to increase reliability. In order to provide data reliability for the data stored on each of the disks in a storage system, the disks may be mirrored to increase reliability. Mirroring is the process of maintaining a duplicate copy of the data stored on a disk. The duplicate copy is maintained in synchronization with changes made to the original disk drive. Should the original disk drive fail, the duplicate disk drive may be used by the computer system to continue operation without loss of data.
Disk array systems (often referred to as RAID systems, an acronym for Redundant Array of Inexpensive Drives) use mirroring as one form of redundancy to enhance the reliability of disk storage devices. RAID systems also employ other techniques to enhance reliability of stored information. Other RAID techniques use parity (Boolean exclusive-or computed values) to provide redundancy information capable of regenerating data lost due to a disk drive failure. In general, RAID systems use redundancy (mirroring as well as other redundancy techniques) to assure reliable storage of data on the disk drives.
Modern storage systems (including RAID storage systems) are comprised of many components in addition to disk drives. Any one component could cause failure of the storage system. For example, although no disk drive, per se, fails, if the power supply that provides power to the disk drives fails, the effect is similarxe2x80x94stored data will be unavailable. Although data is not lost, its unavailability is the equivalent of a failure of the storage system in many applications.
To avoid such failures, modern storage systems include redundant components for many other components in the system. Storage systems that physically house components in modular enclosures may include redundant enclosures. In each enclosure are redundant components such as power supplies, communication paths to and from the storage devices (e.g., SCSI busses or Fibre Channel links), fans, disk controllers, storage devices, etc. Each of these other redundant components could be a point of failure in the storage system if not for the redundancy.
Large storage systems often include environmental service or monitoring devices or cards within each enclosure to monitor the redundant components and the environmental conditions within the storage enclosure. These environmental service cards sense failures of other redundant components in the enclosure. Such environmental service cards for monitoring purposes must also be redundant to help assure reliable operation. As with the disks, the system cannot have a single point of failure, thus, the need for total redundancy.
It is common to swap redundant components when a failure is sensed (or for other administrative and configuration reasons). For example, a failed component in one storage system may be removed and a replacement or repaired component may be inserted in its place. A swap that is performed with power to the system shut off is often referred to as a xe2x80x9ccold swap.xe2x80x9d In addition, most modern storage systems also permit swapping of redundant components while a storage system is powered up and even operational. Such swaps are often referred to as xe2x80x9chot swapsxe2x80x9d or xe2x80x9cwarm swaps.xe2x80x9d
An ideal solution for uniquely identifying any device is to record the ID in a component that cannot be removed from the device. A problem with a device that has such a fixed (non-removable) component is that the device""s reliability is negatively impacted. The fixed component is a single point of failure that cannot be replaced to assure reliable access to the device. It is therefore preferred to record an ID for the device in a component that has a redundant mate to assure that there is no single point of failure of the device.
The environmental service card is often used as a repository to store and report a unique identifier associated with the storage enclosure in which it is housed. Standards for storage enclosure designs require a unique identifier be associated with the enclosure. In particular, the SCSI Enclosure Services (xe2x80x9cSESxe2x80x9d) and the SCSI Accessed Fault-Tolerant Enclosure (xe2x80x9cSAF-TExe2x80x9d) standards require that fields be available to report the identifier of the enclosure.
Use of unique identifiers is common to many applications. For example, a unique identifierxe2x80x94a Social Security numberxe2x80x94identifies each individual to the federal government (and other institutions). Or for example, each telephone in the national telephone system is identified by a unique identifierxe2x80x94a country code, area code and phone number.
Because redundant environmental service cards are swappable and capable of storing and reporting an enclosure identifier, a problem exists trying to coordinate which identifier to report after a hot or cold swap of an environmental service card. Therefore, a mechanism is necessary to report and store the proper identifier associated with the storage enclosure. It is important that an enclosure always report the same identifier as stored in its environmental service card(s). It is further important that no two enclosures report the same identifier.
A problem can occur if redundant environmental service cards in an enclosure are programmed with the same identifier and the cards are later swapped between different enclosures. For example, when the redundant environmental service card is taken from a first enclosure and inserted into a second enclosure within the system, the two enclosures would report the same identifier.
A partial solution is to always use the unique identifier programmed into a particular one of the redundant environmental service cards (i.e., always a first card or always a card in a particular physical location of the enclosure). However, even with such a partial solution, another problem can occur because the identifier will change if the chosen environmental service card is removed.
Existing identifier formats provide unique identifiers for enclosures having a single environmental service card, but do not specify a method whereby unique identifiers can be maintained for enclosures having redundant environmental service cards that are swapped among enclosures. Therefore, it is desirable to provide a method to ensure that enclosures having redundant environmental cards can be uniquely identified.
The present invention solves the above and other problems, thereby advancing the state of the useful arts, by providing unique identifiers and methods for generating same that allow storage enclosures to be uniquely identified and thereby addressed regardless of swaps of its environmental service cards that store the unique identifier.
More generally, the identifiers and methods of generation of the present invention are applicable to any device which requires a unique identity be maintained therefore and which uses redundant components to store and report such an identity. As noted above, use of such redundant components and swapping of such components enhances reliability of the devices as compared to a device having a fixed component for storing and reporting the identity of the device. The methods presented herein are primarily directed to application in storage systems where use of such identities and redundant components are common. However, those skilled in the art will understand the applicability of such techniques to any device having redundant components used to store and report the unique identity of the device.
In one preferred, exemplary embodiment, a change number field is maintained in NVRAM (non-volatile memory) for each redundant environmental service card. Each environmental services card views other redundant cards as xe2x80x9cneighbors.xe2x80x9d As needed to assure unique identity, the change number is modified (i.e., incremented) for an environmental services card when it recognizes conditions which could cause later duplication of its present identity. The change number is combined with a pre-assigned environmental service card identifier, a permanent or static identifier, and the combination is stored as a unique identifier to be reported as the identity of the enclosure. Methods of the present invention help assure that the change number is altered only when necessary to assure a unique identity of the enclosure.
A preferred one of the redundant cards provides the unique identity of the enclosure in response to queries from attached systems. Preference is given to the incumbent cardxe2x80x94the card that was not recently swapped into the enclosure or the one that first completes initialization in response to power on of the enclosure. Where none of the redundant cards is incumbent (i.e., all are non-incumbent), the ID generated by a card in a preferred position of the enclosure (i.e., in a preferred physical slot of the to enclosure) is used as the reported ID for the enclosure.
In a system employing multiple enclosures, the circuit cards can be interchanged between enclosures. A card that is hot (or warm) swapped into a hot enclosure will increment its change number field to reflect its sense of a new neighbor redundant device. The presently operating card, the new neighbor of the device just swapped into the host enclosure, records the new identity of the recently swapped neighbor.
Since the address of the storage enclosure is specified to be unique for every enclosure (or other peripheral device), and since the enclosure never assigns the same change number twice, the combination of the environment service card identifier and the change number ensures that the resulting enclosure identifier will also be unique regardless of swap operations performed on the redundant cards within the enclosure.
It is, therefore, an object of the present invention to provide a method for uniquely identifying a device with redundant components that identify the device.
It is an additional object of the invention to provide a method for identifying storage enclosures in a storage system, so that each storage enclosure retains a unique identifier.
It is still a further object of the invention to provide a method for identifying a device having redundant components such that the identity remains unique despite swaps of the redundant components that serve to identify the device.
It is still an additional object of the invention to provide a method for identifying enclosures in a storage system such that the identity remains unique despite swaps of circuit cards among storage systems.
It is a yet another objective of the invention to provide a method for uniquely identifying enclosures in a storage system such that the unique identifier is changed only when necessary.
The above and other objects, aspects, features, and advantages of the present invention will become apparent from the following detailed description and the attached drawings.